草庐IT

go - 包命名 : error exporting variable

全部标签

javascript - NodeJS - 多个对象拆分在多个文件中但在同一个命名空间中

我正在用NodeJS编写多人棋盘游戏服务器,我有几个不同的对象,如游戏、用户、棋盘等。目前,所有这些对象都驻留在一个由NodeJS执行的“sever.js”文件中。随着我的项目的增长,这个单一文件变得越来越拥挤并且难以导航。我想要的是将这些对象拆分为多个js文件,但不必到处使用require函数。我希望继续创建这样的对象-game=newGame();不是这个-game=new(require('game')).Game()--编辑:什么是正确的NodeJS做事方式? 最佳答案 好吧,您可以做一些小事。首先,当你在另一个文件中定义你

Javascript 命名空间 - 多层次

我目前正在执行以下操作来为我的javascript代码提供一个命名空间:(function(foo,$,undefined){//function:showNoteDialogfoo.showNoteDialog=function(){//...}}(window.foo=window.foo||{},jQuery));我更喜欢的是:foo.showNoteDialog()就是要有一个多级命名空间:foo.notes.showDialog()foo.other.showDialog()这可能吗?我该怎么做? 最佳答案 这是我通常的做

javascript - 为什么以及何时在 es6 模块中使用默认导出而不是命名导出?

我已经引用了stackoverflow中的所有问题。但是没有建议为什么以及何时使用默认导出。我刚刚看到可以提到默认值“当一个文件中只有一个导出时”在es6模块中使用默认导出的任何其他原因? 最佳答案 可能会让您选择其中之一的一些差异:命名导出可以导出多个值导入时必须使用导出的名称默认导出导出单个值导入时可以使用任何名称Thisarticle很好地解释了何时最好使用其中一个。 关于javascript-为什么以及何时在es6模块中使用默认导出而不是命名导出?,我们在StackOverflo

javascript - 用于命名变量和函数的单个字母

上下文我阅读了Google编写的JavaScript代码示例。它使用:用于命名变量的单个小写字母用于命名函数的单个大写字母所以代码难以辨认。问题为什么这样命名?使用什么工具来做到这一点? 最佳答案 通常当大型Javascript库投入生产时,代码会被“最小化”以......减小下载大小使逆向工程代码变得更加困难不过,我认为主要动机是#1。此过程通常涉及删除注释和空格以及将变量引用更改为单个字符等操作。例如,看看JSMin. 关于javascript-用于命名变量和函数的单个字母,我们在S

javascript - Controller 中有 $state.go 方法的单元测试 Controller

如何为具有$state.go()且预期重定向到特定状态的函数编写单元测试?$scope.inviteMembers=(id)=>{$state.go('invite',{deptId:id});} 最佳答案 既然是单元测试,你只需要确保函数被调用,仅此而已。沿着这条线的东西:it('shouldmovetotheinvitepageafterinvitingsomeone',function(){spyOn($state,'go');$scope.inviteMembers(1);expect($state.go).toHaveBe

javascript - 带有 Object.create 和命名构造函数的原型(prototype) OO

我是从Python和Smalltalk的背景转到Javascript的,我很欣赏这门语言中Self和Lisp的传承。使用ECMAScript5,我想在没有new运算符的情况下尝试原型(prototype)OO。约束:创建类的可选new运算符instanceof的原型(prototype)链必须是正确的用于WebInspector调试支持的命名构造函数alloc().init()创建序列,类似于Objective-C和Python这是我为满足标准而进行的尝试:functionsubclass(Class,Base){"usestrict";functioncreate(self,args

javascript - 如何在同一命名空间内从函数 B 调用函数 A?

假设我有命名空间,varNamespace={A:function(){alert('Hello!');},B:function(){//CallA()fromhere,dootherstuff}}在这个命名空间中,我打算让A成为B的辅助函数。也就是说,A()永远不会在命名空间之外被调用。它只会被命名空间内的函数调用。解决命名空间内本地/辅助函数问题的最佳方法是什么?我的看法有两种可能性://Method#1varNamespace={A:function(){alert('Method#1');},B:function(){Namespace.A();}}Namespace.B();

javascript - 自定义 grunt 任务命名约定

关于命名包含多个单词的自定义grunt任务是否有任何约定?例如:grunt-json-schemagrunt插件有json_schematask.一个名称包含破折号(-),另一个名称包含下划线(_)。显然,dashed-name不能用作JavaScript对象键:grunt.initConfig({json-schema:{//WON'Twork它们必须用引号引起来:grunt.initConfig({'json-schema':{//willwork我检查了所有官方插件(grunt-contrib-*),但它们都只有一个词。这个问题的动机很简单:我只是想遵循惯例。

javascript - 将 requireJS 模块暴露给全局命名空间的正确方法是什么?

我想将JavascriptAPI作为独立库公开,而不污染其全局命名空间。我已经创建了包装器,所以我不会根据http://requirejs.org/docs/faq-advanced.html污染他们自己的requireJS.我已经简化了目前为止的内容,但我不确定这是否是正确的方法,或者我是否应该以其他方式进行。varMyApi=MyApi||{};varMyApiRequireJS=(function(){//require.jspastedherereturn{requirejs:requirejs,require:require,define:define};})();(func

javascript - Javascript/AngularJS 中的命名空间事件?

我想知道AngularJS是否有命名事件的命名约定?jQuerydefinesitsconvention作为event.namespace(在末尾和点分隔符处有命名空间我看过一些文章(example),其中事件的命名方式如下:namespace::event(在start处有命名空间;和双冒号分隔符)在这个问题上有通用的做法吗?感谢您对此的看法。 最佳答案 我还没有听说过关于Angular的任何具体信息,但您应该考虑到在许多情况下,命名空间通常是一种很好的做法。如果您正在编写一个不会包含其他脚本的简单应用程序,那么命名空间就没有太多